Database as a Service (DaaS) is now becoming more and more popular, as we are moving into the cloud. While DaaS has many desirable features such as elasticity and capital cost reduction, as a new framework it also raises many new challenges that have not been fully addressed before. Among them, one important problem is to predict the execution time of SQL queries. Such a prediction is crucial for DaaS providers to meet the service level agreement (SLA) with their service users. Knowledge about the query execution time is also beneficial to many other database management issues, including query scheduling, admission control, progress monitoring, system sizing, and so on.
Existing solutions mainly focused on predicting the execution time of single standalone SQL queries. Existing solutions to predicting the execution time of concurrent SQL queries, on the other hand, assumed either the query templates or the queries themselves are known beforehand (i.e., they assumed static workloads). Clearly, such an assumption greatly restricts the application scenarios for which these existing approaches can apply. This is because real-world query workloads are usually dynamic, where queries not seen during the training stage need to be handled as well.